﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admincp_qllophoc : AdminPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        try
        {
            this.FillDataToDropDownListKhoiLop();
            this.FillDataToDropDownListNamHoc();
            this.FillDataToDropDownListGiaoVien();
            switch (Request.QueryString["hanhdong"].ToString())
            {
                case "themmoi":
                    lblLoaiHanhdong.Text = "Thêm mới lớp học:";
                    break;
                case "capnhat":
                    lblLoaiHanhdong.Text = "Cập nhật lớp học";

                    //Kiểm tra xem query string mamonhoc có tồn tại và giá trị có tồn tại trong CSDL
                    if (Request.QueryString["malophoc"] != null && KiemTraTonTaiMaLopHoc(Request.QueryString["malophoc"].ToString()))
                    {
                        //Tạo Seesion["MaMonHoc"] chứa mã môn học dùng kiểm tra mã môn học với mã môn học trong Query String khi tiến hành lưu
                        Session["MaLopHoc"] = Request.QueryString["malophoc"].ToString();
                        LopHoc lophoc = db.LopHocs.Single(lh => lh.MaLop == Session["MaLopHoc"].ToString());
                        txtMaLopHoc.Text = lophoc.MaLop;
                        txtMaLopHoc.ReadOnly = true;
                        txtMaLopHoc.Enabled = false;
                        txtTenLopHoc.Text = lophoc.TenLop;
                        ddlKhoiLop.Items.FindByValue(lophoc.MaKhoiLop).Selected = true;
                        ddlNamHoc.Items.FindByValue(lophoc.MaNamHoc).Selected = true;
                        ddlGiaoVien.Items.FindByValue(lophoc.MaGiaoVienChuNhiem).Selected = true;
                        if (lophoc.SiSo != null)
                            txtSiSo.Text = lophoc.SiSo.ToString();
                        else
                            txtSiSo.Text = "";
                        radSuDung.Checked = lophoc.TrangThai != null ? (bool)lophoc.TrangThai : false;
                        radKhongSuDung.Checked = lophoc.TrangThai != null ? !(bool)lophoc.TrangThai : true;
                    }
                    else //Chuyển trang sang trang báo lỗi
                    {
                    }
                    break;
            }
        }
        catch
        {
            //Chuyển trang sang trang báo lỗi
        }
    }

    private bool KiemTraTonTaiMaLopHoc(string MaLopHoc)
    {
        try
        {
            //Nếu tìm không thấy thì phát sinh lỗi --> chuyển sang khối lệnh catch
            LopHoc lophoc = db.LopHocs.Single(lh=>lh.MaLop == MaLopHoc);
            return true;
        }
        catch
        {
            return false;
        }
    }

    private void FillDataToDropDownListKhoiLop()
    {
        ddlKhoiLop.DataSource = db.KhoiLops.Where(kl => kl.TrangThai == true);
        ddlKhoiLop.DataTextField = "TenKhoiLop";
        ddlKhoiLop.DataValueField = "MaKhoiLop";
        ddlKhoiLop.DataBind();
    }

    private void FillDataToDropDownListNamHoc()
    {
        ddlNamHoc.DataSource = db.NamHocs.Where(nh=>nh.TrangThai == true);
        ddlNamHoc.DataTextField = "TenNamHoc";
        ddlNamHoc.DataValueField = "MaNamHoc";
        ddlNamHoc.DataBind();
    }

    private void FillDataToDropDownListGiaoVien()
    {
        ddlGiaoVien.DataSource = db.GiaoViens.Where(gv=>gv.TrangThai == true);
        ddlGiaoVien.DataTextField = "TenGiaoVien";
        ddlGiaoVien.DataValueField = "MaGiaoVien";
        ddlGiaoVien.DataBind();
    }

    protected void LuuLopHoc(object sender, EventArgs e)
    {
        try
        {
            LopHoc lophoc = new LopHoc();
            switch (Request.QueryString["hanhdong"].ToString().ToLower())
            {
                case "themmoi":
                    lophoc.MaLop = txtMaLopHoc.Text;
                    lophoc.TenLop = txtTenLopHoc.Text;
                    if(!String.IsNullOrEmpty(ddlKhoiLop.SelectedValue))
                        lophoc.MaKhoiLop = ddlKhoiLop.SelectedValue;
                    if(!String.IsNullOrEmpty(ddlNamHoc.SelectedValue))
                        lophoc.MaNamHoc = ddlNamHoc.SelectedValue;
                    if (!String.IsNullOrEmpty(ddlGiaoVien.SelectedValue))
                        lophoc.MaGiaoVienChuNhiem = ddlGiaoVien.SelectedValue;
                    if (!String.IsNullOrEmpty(txtSiSo.Text))
                        lophoc.SiSo = Byte.Parse(txtSiSo.Text);
                    lophoc.TrangThai = radSuDung.Checked;
                    db.LopHocs.InsertOnSubmit(lophoc);
                    db.SubmitChanges();
                    Response.Redirect("lophoc.aspx");
                    break;
                case "capnhat":
                    if (Session["MaLopHoc"].ToString() == Request.QueryString["malophoc"].ToString())
                    {
                        lophoc = db.LopHocs.Single(lh => lh.MaLop == Session["MaLopHoc"].ToString());
                        lophoc.TenLop = txtTenLopHoc.Text;
                        if(!String.IsNullOrEmpty(ddlKhoiLop.SelectedValue))
                            lophoc.MaKhoiLop = ddlKhoiLop.SelectedValue;
                        if (!String.IsNullOrEmpty(ddlNamHoc.SelectedValue))
                            lophoc.MaNamHoc = ddlNamHoc.SelectedValue;
                        if (!String.IsNullOrEmpty(ddlGiaoVien.SelectedValue))
                            lophoc.MaGiaoVienChuNhiem = ddlGiaoVien.SelectedValue;
                        if (!String.IsNullOrEmpty(txtSiSo.Text))
                            lophoc.SiSo = Byte.Parse(txtSiSo.Text);
                        lophoc.TrangThai = radSuDung.Checked;
                        db.SubmitChanges();
                        if (Session["MaLopHoc"] != null)
                            Session.Remove("MaLopHoc");
                        Response.Redirect("lophoc.aspx");
                    }
                    else //Chuyển trang sang trang báo lỗi
                    {
                    }
                    break;
                default: //Chuyển trang sang trang báo lỗi
                    break;
            }

        }
        catch
        {
            //Chuyển trang sang trang báo lỗi
        }
    }


}